package com.ruoyi.liangshi.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.liangshi.domain.BizKcKsc;
import com.ruoyi.liangshi.vo.query.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 门店营业收银订单菜品上菜信息Mapper接口
 * 
 * @author ruoyi
 * @date 2023-11-18
 */
public interface BizKcKscMapper
        extends BaseMapper<BizKcKsc> {


    BiBsTimeOutDataVo getTimeOutDishesData(OrderAndKscCommonQueryVo orderAndKscCommonQueryVo);
    /**
     * 获取出餐趋势图表数据
     * @param orderAndKscCommonQueryVo
     */
    List<BiKscMealTrendChartDataVo> getMealTrendChartData(OrderAndKscCommonQueryVo orderAndKscCommonQueryVo);

    /**
     * 获取出餐情况
     */
    List<BiMealStatDataVo> getMealStatData(OrderAndKscCommonQueryVo orderAndKscCommonQueryVo);

    Map<String,Object> getMonthTimeOutInfo(OrderAndKscCommonQueryVo orderAndKscCommonQueryVo);

    Map<String,Object> getDayTimeOutInfo(OrderAndKscCommonQueryVo orderAndKscCommonQueryVo);
    /**
     * 菜品和按菜品类别统计整体情况，平均耗时，历史最优
     * @param orderAndKscCommonQueryVo
     */
    KscItemTypeDataInfoVo getKscItemTypeDataInfo(OrderAndKscCommonQueryVo orderAndKscCommonQueryVo);

    KscItemTypeDataInfoVo getMinConsumeTimeMonth(OrderAndKscCommonQueryVo orderAndKscCommonQueryVo);

    List<BizKscItemInfoVo> getKscAndArchItemInfoByDate(@Param("shopId") Long shopId,
                                                       @Param("shift") String shift,
                                                       @Param("date") String date,@Param("time")String time,
                                                       @Param("excludeItemIds") List<String> excludeItemIds);

    /**
     * 查询门店营业收银订单菜品上菜信息
     * 
     * @param id 门店营业收银订单菜品上菜信息主键
     * @return 门店营业收银订单菜品上菜信息
     */
    public BizKcKsc selectBizKcKscById(Long id);

    /**
     * 查询门店营业收银订单菜品上菜信息列表
     * 
     * @param bizKcKsc 门店营业收银订单菜品上菜信息
     * @return 门店营业收银订单菜品上菜信息集合
     */
    public List<BizKcKsc> selectBizKcKscList(BizKcKsc bizKcKsc);

    /**
     * 新增门店营业收银订单菜品上菜信息
     * 
     * @param bizKcKsc 门店营业收银订单菜品上菜信息
     * @return 结果
     */
    public int insertBizKcKsc(BizKcKsc bizKcKsc);

    /**
     * 修改门店营业收银订单菜品上菜信息
     * 
     * @param bizKcKsc 门店营业收银订单菜品上菜信息
     * @return 结果
     */
    public int updateBizKcKsc(BizKcKsc bizKcKsc);

    /**
     * 删除门店营业收银订单菜品上菜信息
     * 
     * @param id 门店营业收银订单菜品上菜信息主键
     * @return 结果
     */
    public int deleteBizKcKscById(Long id);

    /**
     * 批量删除门店营业收银订单菜品上菜信息
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteBizKcKscByIds(Long[] ids);
}
